﻿#pragma once

#include "topo_base.h"

namespace CAGD
{

/**
 * 拓扑线框.
 */
class TopoWire : public TopoBase
{
  public:
    /**
     * @brief 基本空构造.
     * @see
     */
    TopoWire();

    /**
     * @brief 析构.
     * @see
     */
    ~TopoWire();

    /**
     * @brief 所属 shell.
     * @return
     * @see
     */
    TopoShell *&Shell();

    /**
     * @brief 所有 edge.
     * @return
     * @see
     */
    std::vector<TopoEdge *> &Edges();

    /**
     * @brief 拓扑类型.
     * @return
     * @see
     */
    TopoType Type() const override;

  protected:
    TopoShell *m_shell;              // 所属 shell
    std::vector<TopoEdge *> m_edges; // 包含的所有 edge
};

} // namespace CAGD
